The present invention relates to the field of virtualization, and more specifically, to a method and apparatus for creating a virtual resource package, for example, an Open Virtualization Format (OVF) package.
In the computer field, a virtualization technique has been widely used. With the virtualization technique, one or more virtual machines having complete computer system functions can be simulated on a physical machine. Each of the virtual machines may be based on a different virtualization platform, such as a virtualization platform from VMware®, a virtualization platform from Microsoft®, or the like. For convenience of development and deployment of the virtual machines, a virtual appliance is proposed. The virtual appliance is a pre-built software solution which includes one or more virtual machines packaged, maintained, updated and managed as one unit.
In order to standardize the virtual appliance, the Distributed Management Task Force (DMTF) has proposed an Open Virtualization Format (OVF) standard, which is used to package and distribute the virtual appliance (accordingly, software running on respective virtual machines in the virtual appliance) in an open, safe, portable, efficient and scalable format, and thereby simplify installation and deployment of the virtual appliance across multiple virtualization platforms. An OVF package created by packaging the virtual appliance typically includes: one OVF descriptor file (.ovf), i.e. “OVF envelope”, which describes component parts of the virtual appliance, requirements of the respective component parts, etc.; zero or one OVF manifest file (.mf), which includes SHA-1 abstracts of respective files in the OVF package for ensuring integrity of the OVF package; zero or one OVF certificate file (.cert), which is used to sign the OVF package by signing the manifest file to ensure authenticity of the OVF package; and zero or more disk image files of the virtual machines.
Conventionally, the process of creating the OVF package is performed manually, which requires a user to execute an OVF creating tool deployed as an application on a general purpose computer. Such manual process requires specialized knowledge and is error-prone. Particularly, a system administrator having specialized knowledge of both the OVF and physical systems migrated to the virtual machines is often required to perform the creation of the OVF package. However, when creating the OVF package manually, even such experienced system administrator may enter an incorrect parameter accidentally so that the OVF package is flawed, resulting in that problems may occur in the virtual machines deployed finally.
In order to reduce manual operations, some methods for creating the OVF package have been proposed, which use OVF package creating tools to guide a user through the creation of the OVF package by, for example, graphical wizards. Although these methods provide a step toward automated creation of the OVF package, they still need many manual operations, and thus are still error-prone. In addition, when the OVF package is created, the existing methods cannot collect topology information for an existing runtime environment including physical machines and virtual machines, and it is also difficult to include contents describing configuration constraints for the respective virtual machines in the created OVF package.